1. Field of the Invention
The present invention relates generally to a communication system, and more particularly, to an apparatus and method for channel encoding/decoding for performing soft-decision iterative decoding in a communication system.
2. Description of the Related Art
A turbo encoder is a typical channel encoder which supports iterative decoding. The turbo encoder is classified into a parallel turbo encoder and a serial turbo encoder. Although the present invention will be described with reference to the parallel turbo encoder, it is also possible to apply the present invention to the serial turbo encoder interworking with an iterative decoding apparatus.
The turbo encoder encodes an N-bits input data frame into parity symbols using two simple parallel concatenated codes, wherein recursive systematic convolutional (RSC) codes are generally used for component codes. FIGS. 1 and 2 illustrate a prior art turbo encoder and decoder, respectively. The encoder and decoder are disclosed in U.S. Pat. No. 5,446,747 issued on Aug. 29, 1995, the contents of which are incorporated herein by reference.
Referring to FIG. 1, an interleaver 16 is connected between first and second constituent encoders 12 and 14. For the first and second encoders 12 and 14, a RSC encoder may be used, which is well-known in the art. The interleaver 16 has the same size as a frame length, N, of the input data, and changes arrangement of the input data bit-stream dk provided to the second constituent encoder 14 to decrease the correlation among the data bits. Therefore, the output parallel concatenated codes for the input data bit-stream dk become xk (i.e., dk without modification), y1k,and y2k.
FIG. 2 is a block diagram showing a configuration of a conventional turbo decoder. The turbo decoder includes an adder 18, subtracters 20 and 22, a soft-decision circuit 24, delays 26, 28 and 30, and MAP (Maximum A Posteriori Probability) decoders 32 and 34. The turbo decoder further includes an interleaver 36 which is identical to the interleaver 16 shown in FIG. 1, and deinterleavers 38 and 40. The turbo decoder iteratively decodes input data in the frame unit using a MAP decoding algorithm; a bit error rate (BER) is decreased, as the iterative decoding number increases. A SOVA (Soft Output Viterbi Algorithm) decoder which can perform soft-decision iterative decoding can also be used for the turbo decoder.
As illustrated in FIG. 1, the turbo encoder includes the interleaver 16, which implies that encoding and decoding should be performed in the frame unit. Therefore, it can be understood that the required memory capacity for the MAP decoders 32 and 34 in the turbo decoder of FIG. 2 increases in proportion to a value obtained by multiplying the frame length by a status number of the encoders 12 and 14 of FIG. 1.
In a communication system for providing various services, such as voice, character, image and moving picture services, a data rate ranges from several Kbps to several Mbps, and a length of data frames inputted to a channel encoder varies from several ms (milliseconds) to several hundred ms. In particular, a channel decoder employing the iterative decoding, such as the turbo decoder, experiences a decreased bit error rate (BER) as the number of iterative decodings increases. However, an increase in the iterative decoding number inevitably leads to an increase in the amount of calculations, power consumed by the decoder, and transmission time. Hence, in the channel decoder using iterative decoding, the iterative decoding number is generally fixed to a value satisfying a permissible time delay irrespective of the service type.
However, since the condition of a transmission channel varies with time, a desired bit error rate may not be obtained with the fixed iterative decoding number when the condition of the receiving channel is worse as compared to a predetermined condition. In a packet data service which may be less influenced by a transmission time delay, a desired bit error rate may be satisfied by increasing the iterative decoding number. However, when the iterative decoding number is fixed to a maximum value in consideration of only the worst channel condition, the amount of calculations unnecessarily increases, causing an increase in power consumption of the decoder in a good channel condition. Further, even though the transmission delay time increases, it is needed to increase the iterative decoding number, if necessary, according to a class of the user or received data. The bit error rate and the time delay are determined according to the class. Therefore, it is necessary to vary the iterative decoding number according to the service type, the class, and the channel conditions.